#!/bin/sh -e

## Barry is a GPL C++ library for interfacing with the RIM BlackBerry
## Handheld. It comes with a command line tool for exploring the device
## and a GUI for making quick backups. This project's goal is to create
## a fully functional syncing mechanism on Linux.
## http://sourceforge.net/projects/barry/
##
## Written by "Vincent Batts <vbatts@batts.mine.nu>"
##
## opensync consideration added thanks
##   to "Heinz Wiesinger <HMWiesinger@gmx.at>"

PKGNAME=barry
VERSION=0.14
ARCH=${ARCH:-i486}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}

CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PKGNAME
OUTPUT=${OUTPUT:-/tmp}

# Enable opensync-plugin
OPENSYNC=${OPENSYNC:-no}

if [ "$OPENSYNC" = "no" ]; then
  opensync_opt="dis"
else
  opensync_opt="en"
fi

if [ "$ARCH" = "i486" ]; then
  SLKCFLAGS="-O2 -march=i486 -mtune=i686"
elif [ "$ARCH" = "i686" ]; then
  SLKCFLAGS="-O2 -march=i686 -mtune=i686"
elif [ "$ARCH" = "s390" ]; then
  SLKCFLAGS="-O2"
elif [ "$ARCH" = "x86_64" ]; then
  SLKCFLAGS="-O2"
fi

rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
cd $TMP
rm -rf $PKGNAME-$VERSION
tar xvf $CWD/$PKGNAME-$VERSION.tar.bz2
cd $PKGNAME-$VERSION
chown -R root:root .
chmod -R a-s,u+rw,go+r-w .

CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
  --prefix=/usr \
  --mandir=/usr/man \
  --${opensync_opt}able-opensync-plugin \
  --build=$ARCH-slackware-linux

make || exit 1
make install DESTDIR=$PKG || exit 1

( cd $PKG
  find . | xargs file | grep "executable" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
  find . | xargs file | grep "shared object" | grep ELF | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null
)

gzip -9 $PKG/usr/man/man?/*.?

mkdir -p $PKG/usr/doc/$PKGNAME-$VERSION
cp -a README TODO COPYING AUTHORS NEWS ChangeLog \
  $PKG/usr/doc/$PKGNAME-$VERSION

mkdir -p $PKG/etc/udev/rules.d/
cp -a udev/10-blackberry.rules udev/99-$PKGNAME-perms \
  $PKG/etc/udev/rules.d/

mkdir -p $PKG/etc/modprobe.d
echo "blacklist berry-charge" > $PKG/etc/modprobe.d/$PKGNAME.new

mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh

cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PKGNAME-$VERSION-$ARCH-${BUILD}${TAG}.tgz
